
// Divide 17 by 5 using repeated subtraction.
//
// x5 = dividend
// x6 = divisor
// x7 = quotient
// x8 = remainder

start:
        addi x5, x0, 17       // Dividend
        addi x6, x0, 5        // Divisor

        addi x7, x0, 0        // Quotient = 0
        add  x8, x5, x0       // Remainder = dividend

        beq  x6, x0, DivideByZero

DivideLoop:

        blt  x8, x6, DivideDone

        sub  x8, x8, x6       // Subtract divisor
        addi x7, x7, 1        // Increment quotient

        jal  x0, DivideLoop

DivideDone:

        cout << "Quotient = " << x7 << endl;
        cout << "Remainder = " << x8 << endl;

        jal  x0, ProgramDone

DivideByZero:

        cout << "Error: division by zero" << endl;

ProgramDone:
